package com.winai.launcher.collector;

import android.annotation.SuppressLint;
import android.content.Context;
import android.os.Handler;
import android.os.Message;

import androidx.annotation.NonNull;

import com.winai.launcher.bean.requestBean.UseInfoBean;
import com.winai.launcher.utils.BaseUtils;

import org.json.JSONArray;
import org.json.JSONObject;

import java.util.List;

/**
 * 作者：康少
 * 时间：2020/4/13 0013
 * 说明：行为数据捕捉接口
 */
public class DataCollector {
    private static final String TAG = "DataCollector";

    public DataCollector() {
    }

    /**
     * Json列表插入
     * Json Insertion
     *
     * @param object Json元素 Json Object;
     * @param array  Json列表 Json Array;
     * @return 返回插好的Json列表 Inserted Json Array;
     */
    private List<UseInfoBean> InsertJSONObject(UseInfoBean object, List<UseInfoBean> array) {
        if (null != object) {
            array.add(object);
            return array;
        } else {
            return array;
        }
    }


    /**
     * activity打开状态收集
     * activity open data
     *
     * @param array         待插入的Json列表
     * @param activityName  activity标志
     * @param activityTitle activity标题
     * @param activityTag   activity的备注
     * @return 插好的Json列表
     */
    public List<UseInfoBean> activityOpenDataCollect(Context context, List<UseInfoBean> array, String activityName, String activityTitle, String activityTag, int type, String ip) {
        UseInfoBean object = PageCollector.getInstance().pageOpenInfoGenerated(context, activityName, activityTitle, activityTag, type, ip);
        return InsertJSONObject(object, array);
    }

    /**
     * activity关闭状态收集
     * activity closed data
     *
     * @param array         待插入的Json列表
     * @param activityName
     * @param activityTitle
     * @param activityTag
     * @return 插好的Json列表
     */
    public List<UseInfoBean> activityCloseDataCollect(Context context, List<UseInfoBean> array, String activityName, String activityTitle, String activityTag, int type, String ip) {
        UseInfoBean object = PageCollector.getInstance().pageCloseInfoGenerated(context, activityName, activityTitle, activityTag, type, ip);
        return InsertJSONObject(object, array);
    }


    /**
     * 退出APP事件收集 关了有可能收不到
     * App Exited data
     *
     * @param context
     * @param array   待插入的Json列表; Json Array;
     * @return 插好的Json列表; Finished Json Array;
     */
    public List<UseInfoBean> appExitLogHandle(Context context, List<UseInfoBean> array, String ip) {
        UseInfoBean object = PageCollector.getInstance().appCloseEventGeneration(context, ip);
        return InsertJSONObject(object, array);
    }
}
